package cn.edu.ctbu.dp07.service;

import cn.edu.ctbu.dp07.entity.Course;
import cn.edu.ctbu.dp07.entity.Score;
import cn.edu.ctbu.dp07.entity.Student;

import java.util.List;

public interface ScoreService {
    // 获取所有成绩
    List<Score> findAll();
    
    // 根据ID获取成绩
    Score findById(Integer id);
    
    // 根据学生ID查询成绩
    List<Score> findByStudentId(Integer studentId);
    
    // 根据课程ID查询成绩
    List<Score> findByCourseId(Integer courseId);
    
    // 根据学生ID和课程ID查询成绩
    Score findByStudentIdAndCourseId(Integer studentId, Integer courseId);
    
    // 根据学期查询成绩
    List<Score> findBySemester(String semester);
    
    // 获取学生的平均成绩
    // Double getAverageScoreByStudent(Integer studentId);
    
    // 获取课程的平均成绩
    // Double getAverageScoreByCourse(Integer courseId);
    
    // 保存或更新成绩信息
    Score save(Score score);
    
    // 删除成绩
    void deleteById(Integer id);

    // 根据学生对象查询成绩
    List<Score> findByStudent(Student student);

    // 根据课程对象查询成绩
    List<Score> findByCourse(Course course);

    // 根据学生和课程对象查询成绩
    Score findByStudentAndCourse(Student student, Course course);

    // 获取学生的平均成绩（通过Student对象）
    Double getAverageScoreByStudent(Student student);

    // 获取课程的平均成绩（通过Course对象）
    Double getAverageScoreByCourse(Course course);
} 